<?xml version="1.0" encoding="UTF-8"?>
<GenerateModel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="generateMetaModel_Module.xsd">
  <PythonExport
      Father="BaseClassPy"
      Name="AreaPy"
      Twin="Area"
      TwinPointer="Area"
      Include="Mod/CAM/App/Area.h"
      Namespace="Path"
      FatherInclude="Base/BaseClassPy.h"
      FatherNamespace="Base"
      Constructor="true"
      Delete="true">
    <Documentation>
      <Author Licence="LGPL" Name="Zheng, Lei" EMail="realthunder.dev@gmail.com" />
      <UserDocu>FreeCAD python wrapper of libarea

Path.Area(key=value ...)

The constructor accepts the same parameters as setParams(...) to configure the object
All arguments are optional.</UserDocu>
    </Documentation>
    <Methode Name="add" Keyword='true'>
      <Documentation>
          <UserDocu></UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="setPlane">
      <Documentation>
          <UserDocu>setPlane(shape): Set the working plane.

The supplied shape does not need to be planar. Area will try to find planar
sub-shape (face, wire or edge). If more than one planar sub-shape is found, it
will prefer the top plane parallel to XY0 plane. If no working plane are set,
Area will try to find a working plane from the added children shape using the
same algorithm</UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="getShape" Keyword='true'>
      <Documentation>
          <UserDocu>getShape(index=-1,rebuild=False): Return the resulting shape


* index (-1): the index of the section. -1 means all sections. No effect on planar shape.


* rebuild: clean the internal cache and rebuild</UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="makeOffset" Keyword='true'>
      <Documentation>
          <UserDocu>Make an offset of the shape.</UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="makePocket" Keyword='true'>
      <Documentation>
          <UserDocu>Generate pocket toolpath of the shape.</UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="makeSections" Keyword="true">
      <Documentation>
          <UserDocu>Make a list of area holding the sectioned children shapes on given heights.</UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="getClearedArea">
      <Documentation>
          <UserDocu>Gets the area cleared when a tool of the specified diameter follows the gcode represented in the path, ignoring cleared space above zmax and path segments that don't affect space within the x/y space of bbox.</UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="getRestArea">
      <Documentation>
          <UserDocu>Rest machining: Gets the area left to be machined, assuming some of this area has already been cleared by previous tool paths.</UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="toTopoShape">
      <Documentation>
          <UserDocu>Convert the Area object to a TopoShape.</UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="setParams" Keyword="true">
      <Documentation>
          <UserDocu>Set algorithm parameters.</UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="setDefaultParams" Keyword="true">
      <Documentation>
          <UserDocu>Static method to set the default parameters of all following Path.Area, plus the following additional parameters.</UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="getDefaultParams">
      <Documentation>
          <UserDocu>Static method to return the current default parameters.</UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="getParamsDesc" Keyword="true">
      <Documentation>
          <UserDocu>Returns a list of supported parameters and their descriptions.</UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="getParams">
      <Documentation>
        <UserDocu>Get current algorithm parameters as a dictionary.</UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="abort" Keyword="true">
      <Documentation>
          <UserDocu>Abort the current operation.</UserDocu>
      </Documentation>
    </Methode>
    <Attribute Name="Sections" ReadOnly="true">
        <Documentation>
            <UserDocu>List of sections in this area.</UserDocu>
        </Documentation>
        <Parameter Name="Sections" Type="List"/>
    </Attribute>
    <Attribute Name="Workplane" ReadOnly="false">
        <Documentation>
            <UserDocu>The current workplane. If no plane is set, it is derived from the added shapes.</UserDocu>
        </Documentation>
        <Parameter Name="Workplane" Type="Object"/>
    </Attribute>
    <Attribute Name="Shapes" ReadOnly="true">
        <Documentation>
            <UserDocu>A list of tuple: [(shape,op), ...] containing the added shapes together with their operation code</UserDocu>
        </Documentation>
        <Parameter Name="Shapes" Type="List"/>
    </Attribute>
  </PythonExport>
</GenerateModel>
